import request from '@/utils/request';
import { Local } from '@/utils/index';

// 百度信息，用以操作API
// requestConfig
const requestConfig = {
  token: Local.get("token"),
  domainName: import.meta.env.MODE === "development" ? "baiduApi" : "https://pan.baidu.com",
}

// 获取用户信息(可用于验证token是否合法)
// 文档地址: https://pan.baidu.com/union/doc/pksg0s9ns
function getUserInfo (token: string) {
  return request({
    url: `${requestConfig.domainName}/rest/2.0/xpan/nas?method=uinfo&access_token=${token}`,
    method: 'get'
  });
}

// 获取文件列表(递归)
// 文档地址: https://pan.baidu.com/union/doc/Zksg0sb73
// 最好别递归，性能太慢，分几次调用吧
function getFileList (params: {
  path: string
  recursion: 0 | 1 // 是否递归: 否(默认): 0    是: 1
}) {
  return request({
    url: `${requestConfig.domainName}/rest/2.0/xpan/multimedia?method=listall&path=${params.path}&access_token=${requestConfig.token}&web=1&recursion=${params.recursion}`,
    method: 'get'
  });
}

// 获取文件夹列表
// https://pan.baidu.com/union/doc/nksg0sat9
function getFolderList (params: {
  path: string
  folder: 0 | 1 // 是否只返回文件夹: 返回所有: 0 只返回文件夹: 1 ;只返回字段: path(路径)
}) {
  return request({
    url: `${requestConfig.domainName}/rest/2.0/xpan/file?method=list&dir=${params.path}&access_token=${requestConfig.token}&web=1&folder=${params.folder}`,
    method: 'get'
  });
}

// 获取文档列表; 仅限文档比如text、word、exle
// 文档地址: https://pan.baidu.com/union/doc/Eksg0saqp
function getDocumentList (params: {
  path: string
  recursion: 0 | 1 // 是否递归: 否(默认): 0    是: 1
}) {
  return request({
    url: `${requestConfig.domainName}/rest/2.0/xpan/file?method=doclist&parent_path=${params.path}&access_token=${requestConfig.token}&web=1&recursion=${params.recursion}`,
    method: 'get'
  });
}

// 获取图片列表
// 文档地址: https://pan.baidu.com/union/doc/bksg0sayv
function getImagelist (params: {
  path: string
}) {
  return request({
    url: `${requestConfig.domainName}/rest/2.0/xpan/file?method=imagelist&parent_path=${params.path}&access_token=${requestConfig.token}&web=1&recursion=0`,
    method: 'get'
  });
}

// 获取文件信息
function getFileInfo (params: {
  fsids: number
  dlink: 0 | 1 // 是否需要下载地址: 0-否(默认) 1-是；获取到dlink后，参考下载文档进行下载操作
}) {
  return request({
    url: `baiduApi/rest/2.0/xpan/multimedia?method=filemetas&access_token=${requestConfig.token}&fsids=[${params.fsids}]&dlink=${params.dlink}`,
    method: 'get'
  });
}

// 下载文件
function downloadFile (dlink: string) {
  const url = `${dlink}&access_token=${requestConfig.token}`
  return request({
    url,
    method: 'get',
    headers: {
      Host: "d.pcs.baidu.com",
      "User-Agent": "pan.baidu.com",
    }
  });
}

// 下载文件
function getData () {
  return request({
    // url: "https://dcf5e8f1518b4d889a0ac6193e9e66e8.apig.cn-east-3.huaweicloudapis.com/getdata",
    // url: "https://dcf5e8f1518b4d889a0ac6193e9e66e8.apig.cn-east-3.huaweicloudapis.com/getdata2",
    url: "https://dcf5e8f1518b4d889a0ac6193e9e66e8.apig.cn-east-3.huaweicloudapis.com/getUserInfo",
    method: 'get',
  });
}
// 

export {
  getUserInfo,
  getFileList,
  getFolderList,
  getDocumentList,
  getImagelist,
  getFileInfo,
  downloadFile,
  getData,
}